package com.xiejr.pss.jvm.memory;

import com.sun.tools.javac.code.Attribute;
import org.openjdk.jol.info.ClassLayout;

/**
 *
 * 1.jvm默认开启逃逸分析 ,allocate方法尽管new了很多对象，jvm会将对象优先分配在栈内,但是随着栈帧的销毁,对象也销毁,所以Eden区几乎不会发生GC
 * 2.-Xmx10m -Xms10m -XX:+PrintGCDetails -XX:-DoEscapeAnalysis 关闭逃逸分析,指定堆内存为10m,则方法内部创建的对象都会放到Eden区内，会频繁触发YoungGC
 *
 * 逃逸分析demo测试
 * @author mobai
 * @since 2021/6/10 15:53
 *
 */
public class EscapeTestDemo {

    public static class Escape{

    }

    public static void main(String[] args) {
        long start=System.currentTimeMillis();
        for (int i = 0; i < ((1<<31)-1); i++) {
            allocate();
        }
        long end=System.currentTimeMillis();
        System.out.println(end - start);


    }

    public static void allocate(){
        Escape escape=new Escape();

    }
}
